package cn.luckdou.commons.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 * 各种id生成策略
 * <p>Title: IDUtil</p>
 * <p>Description: </p>
 * @author	Dadou
 * @date	2015年7月22日下午2:32:10
 * @version 1.0
 */
public class IDUtils {

	/**
	 * 图片名生成
	 */
	public static String genImageName() {
		//取当前时间的长整形值包含毫秒
		long millis = System.currentTimeMillis();
		//long millis = System.nanoTime();
		//加上三位随机数
		Random random = new Random();
		int end3 = random.nextInt(999);
		//如果不足三位前面补0
		String str = millis + String.format("%03d", end3);
		
		return str;
	}
	
	
	/**
	 * 订单号生成
	 * @return
	 * @date 2016年11月5日 下午1:41:21
	 * @author caozhao
	 */
	public static String getOrderNum() {
		//取当前时间的长整形值包含毫秒
		long millis = System.currentTimeMillis();
		//long millis = System.nanoTime();
		//加上三位随机数
		Random random = new Random();
		int end3 = random.nextInt(999999);
		//如果不足三位前面补0
		String str = millis + String.format("%06d", end3);
		
		return str;
	}
	
	
	
	
	/**
	 *  long id生成
	 */
	public static long genDataId() {
		//取当前时间的长整形值包含毫秒
		long millis = System.currentTimeMillis();
		//long millis = System.nanoTime();
		//加上两位随机数
		Random random = new Random();
		int end2 = random.nextInt(99);
		//如果不足两位前面补0
		String str = millis + String.format("%02d", end2);
		long id = new Long(str);
		return id;
	}
	/**
	 * String id生成
	 */
	public static String getId() {
		//取当前时间的长整形值包含毫秒
		long millis = System.currentTimeMillis();
		//long millis = System.nanoTime();
		//加上两位随机数
		Random random = new Random();
		int end2 = random.nextInt(999);
		//如果不足两位前面补0
		return millis + String.format("%03d", end2);
	}
	
	
	
	public static String genSix(){
		
		int max=999999;
		int min=000000;
		int num = 1;
		
		while(num < 100000){
			num = (int)(Math.random()*(max-min))+min;
		}
		
		return num+"";
	}
	
	
	
	public static String genId(){
		SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMddHHmmssSSS");
		String string = sdf.format(new Date());
		
		Random random = new Random();
		int end3 = random.nextInt(999);
		//如果不足三位前面补0
		String str = string + String.format("%03d", end3);
		return str;
	}
	
	public static void main(String[] args) {
		System.out.println(genImageName());
		System.out.println(genId());
	}
}
